package com.ikun.util;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 日期工具类
 *
 * @author 吴思伟
 * @version 1.0 2024-04-01
 */
public class DateUtil {

    private static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";

    /**
     * 格式化当前时间为默认格式(yyyy-MM-dd HH:mm:ss)
     */
    public static String formatNow() {
        return format(new Date());
    }

    /**
     * 格式化指定时间为默认格式(yyyy-MM-dd HH:mm:ss)
     */
    public static String format(Date date) {
        return format(date, DEFAULT_PATTERN);
    }

    /**
     * 格式化指定时间为指定格式
     *
     * @param date 日期对象
     * @param pattern 格式模式，如："yyyy-MM-dd", "HH:mm:ss"等
     */
    public static String format(Date date, String pattern) {
        if (date == null) {
            return "";
        }
        try {
            return new SimpleDateFormat(pattern).format(date);
        } catch (Exception e) {
            return "";
        }
    }

    /**
     * 将时间戳格式化为字符串
     */
    public static String format(long timestamp, String pattern) {
        return format(new Date(timestamp), pattern);
    }

    /**
     * 获取当前时间的格式化字符串
     */
    public static String formatNow(String pattern) {
        return format(new Date(), pattern);
    }
}
